Currently, database systems are equipped with High Availability and Disaster Recovery (HADRON) features such that data and metadata stored on a primary database server are still accessible even if the primary database server becomes temporarily or permanently unavailable. In these database systems, the primary database server typically includes the original version of the data and the metadata that is accessed and modified by a user. A secondary database server is then used to mirror all of the activity that occurs on the data and metadata stored on the primary database server such that a copy of the altered data and metadata is stored on the secondary database server. As a result, if the primary database server becomes temporarily unavailable, the secondary database server, which includes data and metadata that closely resembles the primary database server, will be made available to the user. This feature is referred to as high availability.
In certain cases, the primary database server and the secondary database server may be located at different geographical locations such that the secondary database server will be preserved in the event that the primary database server is destroyed by a natural disaster or the like. In the case of such a disaster, since the primary database server may no longer be available, the secondary database server may be provided to take over the tasks of the primary database server. This feature is referred to as disaster recovery. For both features, high availability and disaster recovery, the database system mirrors the changes performed on the primary database server onto the secondary database server to ensure that the data and metadata stored in the primary database server is available to those requesting it.
The changes performed on the primary server may be made on the metadata of a database file and/or the data of a filesystem file. The metadata are stored in rows of the database file that is stored in a filesystem. The filesystem file is located in the same filesystem or a different filesystem as the database file. Currently, changes made to the metadata are logged in a database log file, but the changes made to the data in a filesystem file are not logged anywhere. In order to mirror the changes made to the metadata on the primary database server, a computer application sends the database log file to the secondary database server such that the secondary database server mirrors the changes indicated in the database log file. However, since the database log file does not include any information pertaining to the changes made to the data in the filesystem file on the primary database server, the secondary database server cannot mirror the changes made to the data on the primary database server because it does not know what data has changed. As such, the secondary database server copies the entire filesystem file to ensure that the changed data has been mirrored onto the secondary database. This method for updating the changes to the data in the file on the secondary server is an inefficient method for updating changes to data.